package com.dfrz.ch06;

/**
 * 作者：wangmaokang
 * 日期: 2021/4/13 9:09
 * 描述:
 */
public class RecursionTest {
    public static void main(String[] args) {
        int result=1;
        result=  FactorialAdd(5);   //  5!+4!+3!+2!+1!
        System.out.println(result);
    }
    /**
     * 阶乘方法
     * @param n
     * @return
     */
    public static int   Factorial(int n){   //5!=5*4*3*2*1
        if (n<=0){
            System.out.println("输入的值不合法");
            return 0;
        }else if (n==1){
            return 1;
        }else {
            return  n*Factorial(n-1);
        }
    }
    /**
     * 阶加方法
     * @param n
     * @return
     */
    public static int   FactorialAdd(int n){
        if (n<=0){
            System.out.println("输入的值不合法");
            return 0;
        }else if (n==1){
            return 1;
        }else {
            return  Factorial(n)+FactorialAdd(n-1);
        }


////        5!+FactorialAdd(4);
//          4!+FactorialAdd(3);   //5!+4!+FactorialAdd(3);
//          3!+FactorialAdd(2);   //5!+4!+3!+FactorialAdd(2);
//          2!+FactorialAdd(1);   //5!+4!+3!+2!+FactorialAdd(1);
//          1!                      //5!+4!+3!+2!+1！

    }

}
